본문으로 건너뛰기

Eclipse GMF 기반의 컴포넌트 다이어그램 편집기 개발

· 약 3분
박영준
맹한민
이태종
이우진
담당교수

논문 정보

  • 제목: Development of Component Diagram Editor based on Eclipse GMF
  • 저자: 박영준, 맹한민, 이태종, 이우진 (경북대학교 대학원 컴퓨터과학과)
  • 학회/저널: 2006년 한국정보과학회 영남지부 학술발표회논문집
  • 발행일: 2006년
  • 주요 연구 내용: Eclipse GMF(Graphical Modeling Framework)를 활용하여 메타모델 정의와 매핑 설정만으로 다이어그램 편집기를 개발하는 방법론을 제안한다.
  • 주요 결과 및 결론: 제안된 가이드라인에 따라 컴포넌트 다이어그램 편집기를 구현하였으며, 하위 레벨 코딩 없이 모델 기반으로 플러그인을 자동 생성하여 개발 비용과 시간을 절감할 수 있음을 확인했다.
  • 기여점: GMF를 이용한 그래픽 편집기 개발의 구체적인 가이드라인을 제시하고, 이를 실제 컴포넌트 다이어그램 편집기 개발에 적용하여 실효성을 입증했다.

요약

초록

현재 다이어그램 편집기 개발은 하위 레벨 코딩부터 시작해야 하므로 많은 기간과 비용이 소요된다. 이 논문은 자바 기반의 확장성 있는 이클립스(Eclipse) 플랫폼의 GMF(Graphical Modeling Framework) 모델링 프로젝트를 사용하여 다이어그램 편집기를 손쉽게 개발하는 방법론을 제시한다. GMF를 사용하면 편집기의 기본 기능과 대부분의 코드를 자동 생성해 주므로 개발자는 하위 레벨 코딩 부담을 줄이고 개발 기간 단축 및 비용 절감 효과를 얻을 수 있다.

서론

소프트웨어 시장의 빠른 변화와 다양한 요구를 충족하기 위해 이클립스나 비주얼 스튜디오 닷넷 같은 툴 플랫폼 기반 개발 방법론이 각광받고 있다. 기존 GEF(Graphical Editing Framework) 방식은 MVC 아키텍처 기반으로 뷰와 컨트롤러를 직접 코딩해야 하는 부담이 있었다. 반면 GMF는 모델 정보를 바탕으로 코드를 자동 생성하여 개발 생산성을 높여준다. 본 연구에서는 GMF를 사용하여 그래픽 편집기를 개발하는 가이드라인을 제시하고, 이에 맞춰 컴포넌트 다이어그램 편집기를 구현한다.

배경

연구의 기반이 되는 이클립스 플랫폼의 주요 구조와 플러그인은 다음과 같다.

  • 이클립스 플랫폼: 언어 중립적인 기반 구조를 정의하며, Workbench, JFace, SWT 등으로 구성된다.
  • EMF(Eclipse Modeling Framework): 모델에 대한 메타모델(Ecore)을 정의하여 메소드를 자동 생성하고 관리한다. XML 스키마나 그래픽/텍스트 편집기를 통해 정의할 수 있다.
  • GMF(Graphical Modeling Framework): EMF에서 정의한 메타모델 정보를 기반으로 다이어그램 구성요소(도형, 아이콘, 선 속성 등)를 정의하고 편집기 GUI 코드를 생성한다. Figure 5

모델 아키텍처 / 방법론

GMF를 사용한 다이어그램 편집기 생성 과정은 논문의 Figure 5에 상세히 묘사되어 있으며, 주요 단계는 다음과 같다.

  1. 도메인 모델 정의 (EMF): 편집할 대상의 메타모델을 정의한다. 본 연구에서는 컴포넌트 다이어그램을 위해 Component, Interface 등을 정의했다.
  2. 그래픽 정의 (.gmfgraph): 다이어그램의 노드(Node), 링크(Link), 라벨(Label) 등 시각적 요소를 정의한다.
  3. 툴 정의 (.gmftool): 팔레트 메뉴, 생성 툴, 버튼 액션 등을 정의한다.
  4. 매핑 정의 (.gmfmap): 도메인 모델(EMF), 그래픽 정의, 툴 정의 간의 연결 관계를 설정한다. 예를 들어 Component 클래스를 사각형 노드에 매핑하고 Dependency를 점선 링크에 매핑한다.
  5. 코드 생성 (.gmfgen): 매핑 정보를 바탕으로 생성 모델을 만들고, 이를 컴파일하여 최종 플러그인 코드를 자동 생성한다. Figure 7 Figure 13

실험 결과

본 논문에서는 UML 2.0 표준안을 근거로 컴포넌트 다이어그램 편집기를 실제로 구현하였다.

  • 메타모델 설계: ComponentInterface를 주요 노드로, RequiredProvided 관계를 링크로 정의하였다. (Figure 7 참조)
  • 그래픽 및 매핑 구현:
    • 노드: Component(컴포넌트 아이콘 포함 사각형), Interface(원형)
    • 링크: Dependency(점선 화살표), Realization(실선)
    • 매핑: Component, Interface 노드와 이들 간의 연결 관계를 component.gmfmap 파일에 정의하였다.
  • 결과물: 최종 생성된 cp2 플러그인을 실행하여 컴포넌트 다이어그램 편집기가 정상적으로 작동함을 확인하였다. 사용자는 팔레트에서 컴포넌트와 인터페이스를 드래그 앤 드롭하여 모델링할 수 있으며, 속성 뷰를 통해 이름을 변경하거나 관계를 설정할 수 있다. (논문의 Figure 13은 실제 작성된 컴포넌트 모델 결과물을 보여준다.)

결론

본 연구는 이클립스 GMF를 이용하여 다이어그램 편집기를 효율적으로 개발할 수 있는 가이드라인을 제공하고, 이를 통해 컴포넌트 다이어그램 편집기를 성공적으로 생성하였다. 제안된 방식은 도메인에 맞는 다양한 편집기를 쉽고 빠르게 생성할 수 있게 해준다. 향후 연구로는 본 가이드라인에서 구현되지 않은 계층적 컴포넌트(Hierarchical Component) 지원 기능을 확장할 계획이다.